package grupo1.fotomultas.Fotomultas.ui;

import grupo1.fotomultas.Fotomultas.Vehiculo;
import grupo1.fotomultas.Fotomultas.Zona;
import grupo1.fotomultas.Fotomultas.Infracciones.TipoInfraccion;
import grupo1.fotomultas.Fotomultas.Notificaciones.MailSender;
import grupo1.fotomultas.Fotomultas.Notificaciones.NotificacionConfiguracion;
import grupo1.fotomultas.Fotomultas.Notificaciones.SmsSender;

import java.util.HashSet;
import java.util.Set;

import org.uqbar.commons.utils.ApplicationContext;
import org.uqbar.commons.utils.ApplicationContextConfiguration;

import AplicacionDelegate.AplicacionDelegado;
import AplicacionDelegate.AplicacionDelegadoConfigurationImpl;

public class FotomultasContext implements ApplicationContextConfiguration {

	@Override
	public void configure(ApplicationContext arg0) {
		new Zona("San Telmo", "11112222");
		new Zona("Microcentro", "22223333");
		new Zona("Abasto", "33334444");
		new Zona("Palermo", "44445555");
		new Zona("Recoleta", "55556666");
		
		AplicacionDelegadoConfigurationImpl testDelegateConfig = new AplicacionDelegadoConfigurationImpl();
		testDelegateConfig.setMailSender(new MailSender());
		testDelegateConfig.setSmsSender(new SmsSender());
		AplicacionDelegado.createAplicationDelegado(testDelegateConfig);
		
		Set<NotificacionConfiguracion> notificaciones = new HashSet<NotificacionConfiguracion>();
		notificaciones.add(new NotificacionConfiguracion(AplicacionDelegado.Instance().smsSender()));
		notificaciones.add(new NotificacionConfiguracion(AplicacionDelegado.Instance().mailSender()));
		new TipoInfraccion("Pasar semaforo en rojo", 100, 1000, notificaciones);
		new TipoInfraccion("Pistear como un campeon", 50, 1200, notificaciones);
		new TipoInfraccion("Mal estacionamiento", 10, 500, notificaciones);
		new TipoInfraccion("Cruzar con barrera baja", 70, 800, notificaciones);
		
		new Vehiculo("ABC 123");
		new Vehiculo("DEF 456");
		new Vehiculo("GHI 789");
		new Vehiculo("JKL 123");
		new Vehiculo("MNO 456");
	}

}
